package mskruch.gps.calculation;

import gpstools.TrainingPoint;
import mskruch.gps.Point;

public interface HeartRateCalculator {

    /**
     * add a point to calculation
     * 
     * @param point
     *            gps point
     */
    public abstract HeartRateCalculator add(final Point point);

    /**
     * returns average heart rate
     * 
     * @return average heart rate or <code>null</code> when no points were added to calculation
     */
    public abstract Short getAverage();

    /**
     * returns minimum heart rate
     * 
     * @return minimum heart rate or <code>null</code> when no points were added to calculation
     */
    public abstract Short getMinimum();

    /**
     * returns maximum heart rate
     * 
     * @return maximum heart rate or <code>null</code> when no points were added to calculation
     */
    public abstract Short getMaximum();

    public abstract void add(TrainingPoint point);

}